<?php
namespace app\controller;
use app\pub\ErrJson;
use think\facade\Db;
use think\Request;

/**
 * 仓库管理方法
 * Class Storehouse
 * @package app\controller\
 */

class Storehouse {
    /**
     * 获取仓库列表
     * @param Request $request 请求头
     * @param $type 类型，1：仓库，2：门店
     * @param $page 当前页
     * @param $limit 每页显示条数
     */
    public function getAll(Request $request, $type, $page, $limit){
        $uniacid = $request->header('uniacid');
        $list = Db::table('ims_zst_marketing_storehouse')
            ->where('uniacid',$uniacid)
            ->where('type',$type)
            ->limit($limit)
            ->page($page)
            ->select();
        $totol = Db::table('ims_zst_marketing_storehouse')
            ->where('uniacid',$uniacid)
            ->where('type',$type)
            ->count();
//        $list = Db::query('SELECT `id`,`name`,`intro`,`type`,`code`,`position`,`address` FROM ims_zst_marketing_storehouse WHERE uniacid='.$uniacid . ' AND `type`='.$type);
        return ErrJson::success_json(array('list' => $list, 'totol' => $totol));
    }

    /**
     * 获取全部仓库列表
     * @param Request $request 请求头
     */
    public function getAllByUniacid(Request $request){
        $uniacid = $request->header('uniacid');
        $list = Db::table('ims_zst_marketing_storehouse')
            ->where('uniacid',$uniacid)
            ->select();
        return ErrJson::success_json($list);
    }

    /**
     * 添加和修改仓库接口
     * @param Request $request 请求头
     * @param $id 如果有ID那么是修改，没有ID事新增
     * @param $type 类型，1：仓库，2：门店
     * @param $name 仓库名称
     * @param $intro 仓库介绍
     * @param $code 仓库代码
     * @param $position 仓库位置
     * @param $address 仓库地址
     */
    public function save(Request $request){
        $uniacid = $request->header('uniacid');
        $params = $request->param();

//        查看仓库代码是否重复
        $b = array_key_exists('id',$params);
//        return ErrJson::error_json($b);
        // 判断是否有id键值，如果有说明是修改，不需要判断，仓库代码不能直接修改
        if(!$b){

            $a = Db::table('ims_zst_marketing_storehouse')
               ->where('uniacid',$uniacid)
                ->where('type',$params['type'])
                ->where('code',$params['code'])
                ->count();
            if($a>0){
                return ErrJson::error_json('仓库代码不能重复');
            }
        }
        $params['uniacid'] = $uniacid;
        $totol = Db::name('ims_zst_marketing_storehouse')->save($params);
        if($totol==1){
            return ErrJson::success_json('');
        }
        return ErrJson::error_json('提交失败');
    }

    /**
     * 删除仓库
     * @param Request $request
     * @param $id 唯一ID
     */
    public function del(Request $request, $id){
        // TODO 删除仓库钱先查询仓库线面有没有库存，如果有库存不允许删，这里库存表没有建立，暂时考虑库存，后去补充
        $uniacid = $request->header('uniacid');
        $totol = Db::table('ims_zst_marketing_storehouse')
            ->where('id',$id)
            ->where('uniacid',$uniacid)
            ->delete();
        if($totol==1){
            return ErrJson::success_json('');
        }
        return ErrJson::error_json('删除失败');
    }

    /**
     * 根据ID获取仓库详细信息
     * @param Request $request
     * @param $id
     */
    public function getInfoById(Request $request, $id){
        $uniacid = $request->header('uniacid');
        $data = Db::table('ims_zst_marketing_storehouse')
            ->where('id', $id)
            ->where('uniacid',$uniacid)
            ->findOrEmpty();
        if(empty($data)){
            return ErrJson::error_json('该条数据无法查询');
        }
        return ErrJson::success_json($data);
    }

    public function test(){
        return ErrJson::success_json('1212121212212121');
    }
}
